#pragma once
#ifndef _COMMON_INCLUDE_H_
#define _COMMON_INCLUDE_H_

#include <ros/ros.h>
#include <sensor_msgs/Imu.h>

#include <deque>
#include <mutex>
#include<stack>
#include <unordered_map>
#include<chrono>
#include<thread>

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl_conversions/pcl_conversions.h>
#include <pcl/common/transforms.h> 
#include <pcl/filters/voxel_grid.h>
#include <pcl/kdtree/kdtree_flann.h>
#include<pcl/common/angles.h>

#include <nav_msgs/Odometry.h>
#include <sensor_msgs/PointCloud2.h>

// for Sophus
#include <sophus/se3.hpp>
#include <sophus/so3.hpp>
typedef Sophus::SE3d SE3;
typedef Sophus::SO3d SO3;

#include"opencv2/opencv.hpp"

using namespace std;
using PointType = pcl::PointXYZI;

// #define MY=0;
#endif
